package com.cn.zpark;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 * @PackageName: com.cn.zpark
 * @ClassName: JdbcBatchInsert
 * @Description:JDBC批量插入数据
 * @author: RZS
 * @date: 2022/3/30  10:41
 */
public class JdbcBatchInsert {
    public static void main(String[] args) {
        /*
            JDBC操作使用数据库步骤：
                1、注册驱动
                2、获取连接对象
                3、获取statement对象
                4、创建sql语句
                5、添加批处理
                    5.1、执行sql
                6、关闭资源
         */
        // 定义连接数据库信息
        String url = "jdbc:mysql://192.168.83.128:3306/java_web01?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
        String user = "root";
        String pwd = "root";

        Connection conn = null;
        Statement stat = null;

        try {
            // 1、注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 2、获取连接对象
            conn = DriverManager.getConnection(url, user, pwd);
            // 3、获取statement对象
            stat = conn.createStatement();
            // 4、创建sql语句
            String sql1 = "insert into tab1(uname) values('王五')";
            String sql2 = "insert into tab1(uname) values('王五1')";
            String sql3 = "insert into tab1(uname) values('王五2')";
            String sql4 = "insert into tab1(uname) values('王五3')";
            // 添加批处理
            stat.addBatch(sql1);
            stat.addBatch(sql2);
            stat.addBatch(sql3);
            stat.addBatch(sql4);
            // 5、执行sql
            int rows[] = stat.executeBatch();


            System.out.println("插入数据成功：" + rows.length);
        } catch(Exception e) {
            e.printStackTrace();
            System.out.println("创建表失败，原因未知");
        } finally {
            // 6、关闭资源
            try {
                // 添加断言
                assert stat != null;  // ! =
                stat.close();
                conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }
}
